# 文件解压缩

在 Linux 系统中,有许多解压缩工具可用,不同的工具支持不同的压缩格式。

# tar

tar (opens new window) 是最常用的归档和解压工具,通常与其他压缩工具(如 gzipbzip2)结合使用。

  • -x:从存档中提取文件。
  • -c:创建新的存档。
  • -v:详细列出已处理的文件。
  • -f ARCHIVE:使用归档文件。

解压 .tar 文件。

tar -xvf file.tar

解压 .tar.gz.tgz 文件。

tar -xvzf file.tar.gz

# pigz 多线程处理
tar --use-compress-program=pigz -xvf file.tar.gz

解压 .tar.bz2 文件。

tar -xvjf file.tar.bz2

解压 .tar.xz 文件。

tar -xvJf file.tar.xz

解压 .tar.Z 文件。

tar -xvZf file.tar.Z

打包 .tar 文件。

tar -cvf file.tar DirName

打包 .tar.gz.tgz 文件。

tar -cvzf file.tar.gz DirName

# pigz 多线程处理
tar --use-compress-program=pigz -cvf file.tar.gz DirName
tar -cvf - DirName | pigz -p 8 > file.tar.gz

打包 .tar.bz2 文件。

tar -cvjf file.tar.bz2 DirName

打包 .tar.Z 文件。

tar -cvZf file.tar.Z DirName

# gzip

gzip 是一个常见的压缩工具,生成的文件通常以 .gz 结尾。

gzip 使用 LZ77 算法来减小指定文件的大小。

解压 .gz 文件。

gunzip file.gz
gzip -d file.gz

压缩 .gz 文件。

gzip file

# bzip2

bzip2 是另一种压缩工具,生成的文件通常以 .bz2 结尾。

bzip2 (opens new window) 使用 Burrows-Wheeler 块排序文本压缩算法和霍夫曼编码来压缩文件,与更传统的 LZ77 / LZ78 压缩器相比,压缩效果通常要好得多,并接近 PPM 系列统计压缩器的性能。

解压 .bz2 文件。

bunzip2 file.bz2
bzip2 -d file.bz2

压缩 .bz2 文件。

bzip2 -z file

# xz

xz 是一种高效的压缩工具,生成的文件通常以 .xz 结尾。

解压 .xz 文件。

unxz file.xz
xz -d file.xz

# zip

zipunzip 是用于处理 .zip 文件的工具。

zip (opens new window) 是一个压缩和文件打包工具,它类似于 tarcompress 的组合。

  • -r:递归遍历目录结构。

解压 .zip 文件。

unzip file.zip

压缩 .zip 文件。

zip -r file.zip DirName

调整压缩级别,如只打包不压缩。

zip -0 -r archive.zip DirName

# pigz

pigz (opens new window) 使用多线程进行压缩,以利用多处理器和多核。其输入数据被分成 128 KB 的块,每个块并行压缩,每个块的单独校验值也并行计算,压缩数据按顺序写入输出,并从各个块的校验值中计算出一个综合校验值。

  • -p n:最多允许 n 个进程。

压缩 .gz 文件。

pigz FileName

解压 .gz 文件。

pigz -d FileName.tgz

# 7zip

7zip 是一种支持多种格式的压缩工具,生成的文件通常以 .7z 结尾。

7za (opens new window) 支持 7z、ZIP、CAB、ARJ、GZIP、BZIP2、TAR、CPIO、RPM 和 DEB 格式。

  • CentOS 7 安装。

    yum install p7zip
    

解压 .7z 文件。

7za x archive.7z -r -o./

压缩 .7z 文件。

7za a -t7z -r archive.7z DirName

# compress

compress (opens new window) 使用自适应 Lempel-Ziv 编码来减小指定文件的大小。

  • CentOS 7 安装。

    yum install ncompress
    

压缩。

compress FileName

解压。

uncompress FileName.Z